package cn.ylz.ylmall.account.service;

import cn.ylz.ylmall.account.pojo.param.UserRegParam;
import cn.ylz.ylmall.account.pojo.param.UserUpdateParam;
import cn.ylz.ylmall.account.pojo.vo.*;
import cn.ylz.ylmall.account.pojo.param.UserLoginParam;
import cn.ylz.ylmall.account.pojo.param.UserRegParamAdmin;
import cn.ylz.ylmall.account.security.CurrentPrincipal;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;


public interface IUserService {
    String ENABLE_TEXT[] = {"禁用", "启用"};
    UserLoginResultVO login(UserLoginParam userLoginParam, HttpServletRequest req, HttpServletResponse resp);

    void reg(UserRegParamAdmin userRegParam);

    PageData<UserListItemVO> list(Integer pageNum);

    PageData<UserListItemVO> list(Integer pageNum, Integer pageSize);

    void delete(Long id);


    UserStandardVO getStandardById(Long id);

    void update(Long id, UserUpdateParam userUpdateParam, CurrentPrincipal currentPrincipal);

    List<UserPermissionVO> PermissionsById(Long id);

    void regUser(UserRegParam userRegParam);

    void setEnable(Long id);

    void setDisable(Long id);

    List<UserRoleVO> rolesById(Long userId);

    PageData<UserListItemVO> listAdmin(Integer pageNum);

}
